# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup

import subprocess
import os
import urllib.parse


def crear_carpeta(nombre_punto):
    res = subprocess.call(['mkdir', 'ANEXOS_1/'+nombre_punto])
    print("resultado crear carpeta: "+nombre_punto+" = "+str(res))

def analizar_enlaces(enlaces, punto):
    print(len(enlaces))
    for e in enlaces:
        if e.startswith("https://acreditacion.industrial.umsa.bo") and \
           not e.endswith('/'):
            ''' 
            enalce local ejemplo:
            https://acreditacion.industrial.umsa.bo/static/media/uploads/Documentacion/Reglamentos/Personal%20Administrativo/Proceso%20de%20seleccion%20de%20becarios.pdf"
            '''
            
            print(e.split('uploads/'))
            l = e.split('uploads/')
            s = l[-1]
            obtener_archivo_local(s, punto)
        else:
            # reporta en un archivo de texto el punto y el enlace que no es local o no es archivo
            
            s = punto + ": " + e + '\n'
            with open("enlaces_no_locales.txt", "a") as myfile:
                myfile.write(s)
    
def obtener_archivo_local(enlace, punto):
    res = subprocess.call(['cp',
                           '/srv/acreditacion/acredt/static/media/uploads/'+enlace,
                           'ANEXOS_1/'+punto])
    print("resultado de cp: " + str(res))
    
    
html_doc = open("dim1.html", "r")
soup = BeautifulSoup(html_doc, 'html.parser')
soup.prettify()

#print(soup.prettify())

# el segundo form es la encuesta
form_encuesta = soup.find_all('form')[1] 

#print(form_encuesta)
enlaces = []
#iterando sobre cada punto de la encuesta
for punto in form_encuesta.find('h4').next_siblings:
    #print(punto)
    sp1 = BeautifulSoup(str(punto),'html.parser')    
    # buscando enlaces para descargar
    enlace = sp1.find('a')
    if enlace is not None:
        #print(">>> "+enlace['href'])
        #print(">>> "+ urllib.parse.unquote(enlace['href']) )
        enlaces.append( urllib.parse.unquote(enlace['href']) )
    
    # buscando un titulo de punto en la encuesta        

    titulo = sp1.find('h4')
    if titulo is not None:
        if titulo.find('strong') is not None:
            num_punto = titulo.find('strong').string
            if num_punto is not None:
                print()
                print(" ___ "+num_punto + " ___")
                # creando una carpeta
                crear_carpeta(num_punto)
                # ahora se analizan los enlaces conseguidos
                analizar_enlaces(enlaces, num_punto)
                enlaces = []
                print()
        
